In software engineering, an entity model, or entity-relationship model, refers to a particular type of data model that describes and defines a process in a problem domain. This process is modeled as components (entities) that are linked with each other by relationships that specify dependencies and requirements between them.
An entity model can be created by a data modeler using software tools. The entity model thus created can be translated into a physical database design and mapped to physical storage devices by a database administrator (DBA). For example, in the case of a relational database management system which stores data in tables, every row of each table represents one instance of an entity. Some data fields in the tables point to indexes in other tables. Such pointers represent the relationships.
As is known, a database management system is a complex software program that provides users with a systematic way to create, retrieve, update, and manage data. There are a number of problems with an existing approach to entity modeling in an application development environment that relies on data modelers (e.g., the IT staff) knowing how to interact with database management systems, essentially requiring them to have data administration and entity modeling expertise. However, the skills required for entity modeling are different from the skills required for data administration. As such, a data modeler may spend time working on what functionality to add to an entity as well as on figuring out how to correctly and appropriately add that functionality to an entity. What is more, traditional application development approaches require business requirements to be developed and then implemented by the IT staff. This process can take months and requires specialized IT personnel.
Furthermore, the existing approach to entity modeling involves using different software tools. Since the entities and their relationships are stored in a database, these software tools must provide a way to access them in the database. To do so, code for different user interfaces need to be written and implemented and data modelers need to learn how to use these software tools. Moreover, functions provided by one entity modeling tool may not be reusable or extensible by another entity modeling tool.
In view of the foregoing, there is a need for innovations and improvements to entity modeling in enterprise computing environments.